/**
 * 
 */
package de.cbf.cam.dsa.dataprovider.talents;

import java.util.ArrayList;
import java.util.List;

import de.cbf.cam.dsa.model.base.TalentTmpl;
import de.cbf.cam.dsa.model.entities.OneAttribute;
import de.cbf.cam.dsa.model.entities.constants.TalentConstants;

/**
 * @author Nebelritter
 *
 */
public class TalentProviderBody {

	private final int TYPE = TalentTmpl.TYPE_Talent_Body;
	
	private static TalentProviderBody instance = new TalentProviderBody();

	public static TalentProviderBody getInstance() {
		return instance ;
	}

	public List<TalentTmpl> provideBodyTalents() {
		List<TalentTmpl> resultList = new ArrayList<TalentTmpl>();
		
		resultList.add(provideAkrobatik());
		resultList.add(provideAthletik());
		resultList.add(provideFliegen());
		resultList.add(provideGaukeleien());
		resultList.add(provideKlettern());
		resultList.add(provideKoerperbeherrschung());
		resultList.add(provideReiten());
		resultList.add(provideSchleichen());
		resultList.add(provideSchwimmen());
		resultList.add(provideSelbstbeherrschung());
		resultList.add(provideSichVerstecken());
		resultList.add(provideSingen());		
		resultList.add(provideSinnenschaerfe());
		resultList.add(provideSkiFahren());
		resultList.add(provideStimmenImmitieren());
		resultList.add(provideTanzen());
		resultList.add(provideTaschendiebstahl());
		resultList.add(provideZechen());		
		return resultList;
	}

	private TalentTmpl provideAkrobatik() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Akrobatik, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.GE,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideAthletik() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Athletik, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.GE,OneAttribute.KO,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideFliegen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Fliegen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.GE});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideGaukeleien() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Gaukeleien, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.CH,OneAttribute.FF});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideKlettern() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Klettern, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.GE,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideKoerperbeherrschung() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Koerperbeherrschung, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.GE});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideReiten() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Reiten, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.CH,OneAttribute.GE,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSchleichen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Schleichen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.GE});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSchwimmen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Schwimmen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.GE,OneAttribute.KO,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSelbstbeherrschung() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Selbstbeherrschung, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.KO,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSichVerstecken() {
		TalentTmpl template = new TalentTmpl(TalentConstants.SichVerstecken, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.GE});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSingen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Singen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.IN,OneAttribute.CH,OneAttribute.CH});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSinnenschaerfe() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Sinnenschaerfe, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.IN});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideSkiFahren() {
		TalentTmpl template = new TalentTmpl(TalentConstants.SkiFahren, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.GE,OneAttribute.GE,OneAttribute.KO});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideStimmenImmitieren() {
		TalentTmpl template = new TalentTmpl(TalentConstants.StimmenImmitieren, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});
		template.setSktColumn('D');
		return template;		
	}
	private TalentTmpl provideTanzen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Tanzen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.CH,OneAttribute.GE,OneAttribute.GE});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideTaschendiebstahl() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Taschendiebstahl, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.FF});
		template.setSktColumn('D');
		return template;
	}
	private TalentTmpl provideZechen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Zechen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.IN,OneAttribute.KO,OneAttribute.KK});
		template.setSktColumn('D');
		return template;
	}

	
}